package com.qyer.lxp.model.product.normal;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
import java.util.List;

/**
 * 销售产品详细信息
 * Created by wangzhen on 16/5/18.
 */

@XmlRootElement(name = "sale-item-detail")
@XmlAccessorType(XmlAccessType.FIELD)
public class SaleItemDetail implements Serializable{
    private static final long serialVersionUID = 2299530736223326143L;

    private int id;

    /**
     * 最大预订数(假设此项目有成人、儿童、婴儿,则 3 个规格的购买总数不大于最
     大预订数), int 型,0 表示没有限制
     */
    @XmlElement(name = "max-book-num")
    private String maxBookNum;

    /**
     * 销售项目 code
     */
    @XmlElement(name = "sale-code")
    private String saleCode;

    /**
     * 产品 code
     */
    @XmlElement(name = "product-code")
    private String productCode;

    /**
     * 销售项目名称
     */
    @XmlElement(name = "sale-name")
    private String saleName;

    /**
     * 描述
     */
    @XmlElement(name = "desc")
    private String desc;

    /**
     * 净价起
     */
    @XmlElement(name = "net-price-from")
    private String netPriceFrom;

    /**
     * 市场价起
     */
    @XmlElement(name = "retail-price-from")
    private String retailPriceFrom;

    /**
     * 预定方式(NO_CONFIRM 立即确认,NEED_CONFIRM 需要确认, API_NEED_CONFIRM 需要确认)
     使用 book 接口的时候,立即确认的产品会直接返回预订的结果,需要确认的产品会返回状态 2-订 单已􏰁交
     */
    @XmlElement(name = "book-method")
    private String bookMethod;

    /**
     * 出票方式(NO_CONFIRM 立即出票,NEED_CONFIRM 需要确认, API_NEED_CONFIRM 需要确认)使用 confirm 接口的时候,立即出票的产品会返回状态 6-已供应, 需要确认的产品会返回订单状态 5-已􏰁交确认
     */
    @XmlElement(name = "supply-method")
    private String supplyMethod;

    /**
     * 此项目调用 book 预订接口后需要在此时间内确认,单位为秒(例:3600),目前产品均 为 3600 秒
     */
    @XmlElement(name = "pay-time")
    private String payTime;

    /**
     * 有效期描述
     */
    @XmlElement(name = "valid-time-desc")
    private String validTimeDesc;

    /**
     * 限制
     */
    @XmlElement(name = "restriction")
    private String restriction;

    /**
     * <!—凭证信息,换取方式,自取方式等-->
     */
    @XmlElement(name = "voucher-info")
    private List<SaleItemVoucherInfo> voucherInfo;

    /**
     * <!—兑换详情-->
     */
    @XmlElement(name = "voucher-option")
    private String voucherOption;

    /**
     * 费用包含
     */
    @XmlElement(name = "inclusion")
    private String inclusion;

    /**
     * 费用不包含
     */
    @XmlElement(name = "exclusion")
    private String exclusion;

    /**
     * ONE:只传旅行日期,TWO 需要传结束日期(酒店),NONE:传当天即可
     */
    @XmlElement(name = "choose-date-method")
    private String chooseDateMethod;

    /**
     * 附加选项
     */
    @XmlElement(name = "additional-options")
    private SaleItemAdditionalOptions additionalOptions;



    /**
     * 附加信息组
     */
    @XmlElement(name = "additional-option-groups")
    private SaleItemAdditionalOptionGroups additionalOptionGroups;

    /**
     * 扩展字段
     */
    @XmlElement(name = "extend-properties")
    private ProductExtendProperties extendProperties;



    /**
     * 注意事项
     */
    @XmlElement(name = "product-specifications")
    private ProductSpecfications productSpecifications;

    public String getMaxBookNum() {
        return maxBookNum;
    }

    public void setMaxBookNum(String maxBookNum) {
        this.maxBookNum = maxBookNum;
    }

    public String getSaleCode() {
        return saleCode;
    }

    public void setSaleCode(String saleCode) {
        this.saleCode = saleCode;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getSaleName() {
        return saleName;
    }

    public void setSaleName(String saleName) {
        this.saleName = saleName;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getNetPriceFrom() {
        return netPriceFrom;
    }

    public void setNetPriceFrom(String netPriceFrom) {
        this.netPriceFrom = netPriceFrom;
    }

    public String getRetailPriceFrom() {
        return retailPriceFrom;
    }

    public void setRetailPriceFrom(String retailPriceFrom) {
        this.retailPriceFrom = retailPriceFrom;
    }

    public String getBookMethod() {
        return bookMethod;
    }

    public void setBookMethod(String bookMethod) {
        this.bookMethod = bookMethod;
    }

    public String getSupplyMethod() {
        return supplyMethod;
    }

    public void setSupplyMethod(String supplyMethod) {
        this.supplyMethod = supplyMethod;
    }

    public String getPayTime() {
        return payTime;
    }

    public void setPayTime(String payTime) {
        this.payTime = payTime;
    }

    public String getValidTimeDesc() {
        return validTimeDesc;
    }

    public void setValidTimeDesc(String validTimeDesc) {
        this.validTimeDesc = validTimeDesc;
    }

    public String getRestriction() {
        return restriction;
    }

    public void setRestriction(String restriction) {
        this.restriction = restriction;
    }

    public List<SaleItemVoucherInfo> getVoucherInfo() {
        return voucherInfo;
    }

    public void setVoucherInfo(List<SaleItemVoucherInfo> voucherInfo) {
        this.voucherInfo = voucherInfo;
    }

    public String getInclusion() {
        return inclusion;
    }

    public void setInclusion(String inclusion) {
        this.inclusion = inclusion;
    }

    public String getExclusion() {
        return exclusion;
    }

    public void setExclusion(String exclusion) {
        this.exclusion = exclusion;
    }

    public String getChooseDateMethod() {
        return chooseDateMethod;
    }

    public void setChooseDateMethod(String chooseDateMethod) {
        this.chooseDateMethod = chooseDateMethod;
    }

    public SaleItemAdditionalOptions getAdditionalOptions() {
        return additionalOptions;
    }

    public void setAdditionalOptions(SaleItemAdditionalOptions additionalOptions) {
        this.additionalOptions = additionalOptions;
    }

    public SaleItemAdditionalOptionGroups getAdditionalOptionGroups() {
        return additionalOptionGroups;
    }

    public void setAdditionalOptionGroups(SaleItemAdditionalOptionGroups additionalOptionGroups) {
        this.additionalOptionGroups = additionalOptionGroups;
    }

    public ProductExtendProperties getExtendProperties() {
        return extendProperties;
    }

    public void setExtendProperties(ProductExtendProperties extendProperties) {
        this.extendProperties = extendProperties;
    }

    public ProductSpecfications getProductSpecifications() {
        return productSpecifications;
    }

    public void setProductSpecifications(ProductSpecfications productSpecifications) {
        this.productSpecifications = productSpecifications;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getVoucherOption() {
        return voucherOption;
    }

    public void setVoucherOption(String voucherOption) {
        this.voucherOption = voucherOption;
    }
}
